1.题目给你一个大小为 nxn 的二元矩阵 grid ,其中 1 表示陆地,0 表示水域。岛 是由四面相连的 1 形成的一个最大组,即不会与非组内的任何其他 1 相连。grid 中 恰好存在两座岛 。你可以将任意数量的 0 变为 1 ,以使两座岛连接起来,变成 一座岛 。返回必须翻转的 0 的最小数目。 示例1:输入:grid=[[0,1],[1,0]]输出:1示例2:输入:grid=[[0,1,0],[0,0,0],[0,0,1]]输出:2示例3:输入:grid=[[1,1,1,1,1],[1,0,0,0,1],[1,0,1,0,1],[1,0,0,0,1],[1,1,1,1,1]]输出:1
1.题目给你一个大小为 nxn 的二元矩阵 grid ,其中 1 表示陆地,0 表示水域。岛 是由四面相连的 1 形成的一个最大组,即不会与非组内的任何其他 1 相连。grid 中 恰好存在两座岛 。你可以将任意数量的 0 变为 1 ,以使两座岛连接起来,变成 一座岛 。返回必须翻转的 0 的最小数目。 示例1:输入:grid=[[0,1],[1,0]]输出:1示例2:输入:grid=[[0,1,0],[0,0,0],[0,0,1]]输出:2示例3:输入:grid=[[1,1,1,1,1],[1,0,0,0,1],[1,0,1,0,1],[1,0,0,0,1],[1,1,1,1,1]]输出:1
有人相爱,有人夜里开车看海,我是leetcode第一题都做不出来题目给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。输入:nums=[2,7,11,15],target=9输出:[0,1]解释:因为nums[0]+nums[1]==9,返回[0,1]。方式一:暴力破解第一眼看到这个问题时,想到的解题方法就是使用for循环,两个for循环进行遍历,每一项进行相加,当等于target时,就可以返回他们的下标vartwoSum=functi
有人相爱,有人夜里开车看海,我是leetcode第一题都做不出来题目给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。输入:nums=[2,7,11,15],target=9输出:[0,1]解释:因为nums[0]+nums[1]==9,返回[0,1]。方式一:暴力破解第一眼看到这个问题时,想到的解题方法就是使用for循环,两个for循环进行遍历,每一项进行相加,当等于target时,就可以返回他们的下标vartwoSum=functi
一、题目大意标签:栈和队列https://leetcode.cn/problems/valid-parentheses给定一个只包括'(',')','{','}','[',']' 的字符串s,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例1:输入:s="()"输出:true示例 2:输入:s="()[]{}"输出:true示例 3:输入:s="(]"输出:false示例 4:输入:s="([)]"输出:false示例 5:输入:s="{[]}"输出:true提示:1s仅由括号'()[]{}'组成二、解题思路思路:括号匹配是典型的使用栈来
一、题目大意标签:栈和队列https://leetcode.cn/problems/min-stack设计一个支持push,pop,top操作,并能在常数时间内检索到最小元素的栈。实现MinStack类:MinStack()//初始化堆栈对象。voidpush(intval)//将元素val推入堆栈。voidpop()//删除堆栈顶部的元素。inttop()//获取堆栈顶部的元素。intgetMin()//获取堆栈中的最小元素。示例1:输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[
一、题目大意标签:栈和队列https://leetcode.cn/problems/implement-queue-using-stacks请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现MyQueue类:voidpush(intx)将元素x推到队列的末尾intpop()从队列的开头移除并返回元素intpeek()返回队列开头的元素booleanempty()如果队列为空,返回true;否则,返回false说明:你只能使用标准的栈操作——也就是只有 pushtotop, peek/popfromtop, size,和 isem
有人相爱,有人夜里开车看海,我是leetcode第一题都做不出来题目如果字符串中不含有任何'aaa','bbb'或'ccc'这样的字符串作为子串,那么该字符串就是一个「快乐字符串」。给你三个整数a,b,c,请你返回任意一个满足下列全部条件的字符串s:s是一个尽可能长的快乐字符串。s中最多有a个字母'a'、b 个字母'b'、c个字母'c'。s中只含有'a'、'b'、'c'三种字母。如果不存在这样的字符串s,请返回一个空字符串""。输入:a=1,b=1,c=7输出:"ccaccbcc"解释:"ccbccacc"也是一种正确答案。快乐字符串中不含有三个连续相同的字母。为了找到最长的字符串,我们可以使
一、题目大意标签:数组https://leetcode.cn/problems/max-chunks-to-make-sorted给定一个长度为n的整数数组arr,它表示在[0,n-1]范围内的整数的排列。我们将arr分割成若干块(即分区),并对每个块单独排序。将它们连接起来后,使得连接的结果和按升序排序后的原数组相同。返回数组能分成的最多块数量。示例1:输入:arr=[4,3,2,1,0]输出:1解释:将数组分成2块或者更多块,都无法得到所需的结果。例如,分成[4,3],[2,1,0]的结果是[3,4,0,1,2],这不是有序的数组。示例2:输入:arr=[1,0,2,3,4]输出:4解释:
一、题目大意标签:数组https://leetcode.cn/problems/search-a-2d-matrix-ii编写一个高效的算法来搜索 m x n 矩阵matrix中的一个目标值target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例1:输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]],target=5输出:true示例2:输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,